10 REM********************************* 20 REM 30 REM INSIDE BASIC: 40 REM THREE ROUTINES TO ILLUSTRATE 50 REM HOW C64 BASIC WORKS 60 REM LINE 20000: HOW BASIC LINES ARE STORED 70 REM LINE 40000: SOME IMPORTANT PAGE ZERO ADDRESSES 80 REM LINE 60000: VARIABLE, ARRAY AND STRING DUMP 90 REM********************************* 100 REM 120 REM 125 POKE 53281,0 130 REM MENU 140 PRINT "[147]":PRINT:PRINT TAB(10);"INSIDE BASIC":PRINT:PRINT 150 PRINT TAB(6);"1. BASIC LINE ADDRESSES":PRINT:PRINT 160 PRINT TAB(6);"[159]2. PROGRAM STATISTICS":PRINT:PRINT 170 PRINT TAB(6);"[158]3. BASIC MEMORY DUMP":PRINT:PRINT 180 PRINT TAB(10);"ENTER OPTION NO(1-3) 190 [161] I$:[139] I$[178]"" [167] 190 200 [139] I$[179]"1" [176] I$[177]"3" [167] 190 205 [153] "LOAD":[153] 210 [145] [197](I$) [141] 20000,40000,1000 220 [153]:[153] "PRESS ANY KEY TO RETURN TO MENU" 230 [161] I$:[139] I$[178]"" [167] 230 240 [156]:[137] 140 243 [143] 245 [143] TEST ROUTINE FOR S/R 60000 247 [143] 1000 [134] A$(5),B$(2,2),C$(1,1,1),I%(9),A(9) 1010 D$[178]"A STRING":I%[178]32000:R[178]1.9E15 1020 [129] N[178]0 [164] 9:I%(N)[178]N:A(N)[178]N:[130] 1030 [129] N[178]0 [164] 5:[135] A$(N):[130] 1040 [129] M[178]0 [164] 2:[129] N[178]0 [164] 2:[135] B$(N,M):[130]:[130] 1050 [129] Q[178]0 [164] 1:[129] M[178]0 [164] 1:[129] N[178]0 [164] 1:[135] C$(N,M,Q):[130]:[130]:[130] 1800 [131] THIS,IS,A,ONE,DIMENSIONAL,ARRAY 1810 [131] THIS,IS,A,TWO,DIMENSIONAL,ARRAY,"","","" 1820 [131] THIS,IS,A,THREE,DIMENSIONAL,ARRAY,"","" 1900 [141] 60000:[142] 19000 [143] 19010 [143] HOW BASIC LINES ARE STORED 19020 [143] 20000 ADDRESS[178][194](43)[170][194](44)[172]256 20100 LINENO[178][194](ADDRESS[170]2)[170][194](ADDRESS[170]3)[172]256 20110 [153] "LINE ";LINENO;" STARTS AT ADDRESS ";ADDRESS 20120 ADDRESS[178][194](ADDRESS)[170][194](ADDRESS[170]1)[172]256 20130 [139] [194](ADDRESS)[179][177]0 [176] [194](ADDRESS[170]1)[179][177]0 [167] 20100 20140 [142] 35000 [143] 35010 [143] IMPORTANT ADDRESSES 35020 [143] 40000 TXTTAB[178][194](43)[170][194](44)[172]256 40020 VARTAB[178][194](45)[170][194](46)[172]256 40030 ARYTAB[178][194](47)[170][194](48)[172]256 40040 SRFIN[178][194](49)[170][194](50)[172]256 40050 SSTART[178][194](51)[170][194](52)[172]256 40060 MEMSIZ[178][194](55)[170][194](56)[172]256 40070 PSIZE[178]VARTAB[171]TXTTAB 40080 VSIZE[178]ARYTAB[171]VARTAB 40090 ASIZE[178]SRFIN[171]ARYTAB 40100 SIZEST[178]SSTART[170]1[171]SRFIN 40110 [153] "START OF PROGRAM:",TXTTAB 40120 [153] "START OF VARIABLES:",VARTAB 40130 [153] "START OF ARRAYS:",ARYTAB 40140 [153] "END OF STRINGS:",SREN 40150 [153] "START OF STRINGS:",SSTART 40160 [153] 40170 [153] "END OF BASIC SPACE:",MEMSIZ 40180 [153] "PROGRAM SPACE";PSIZE;" BYTES" 40190 [153] "VARIABLE SPACE";VSIZE;" BYTES" 40200 [153] "ARRAY SPACE";ASIZE;" BYTES" 40210 [153] "STRING SPACE";SIZEST;" BYTES" 40220 [142] 59000 [143] 59100 [143] DUMP OF VARIABLES, STRINGS 59110 [143] AND ARRAYS 59120 [143] 60000 XB[178]0:XL[178]0:XA[178]0:XX[178]0:X1[178]0:X2[178]0:XF[178]0:XY[178]0:XZ[178]0:XQ[178]0:XT[178]0:X$[178]"":XD[178]0:XR[178]0 60010 X3[178]0:X4[178]0:X5[178]0 60020 XN[178][194](45)[170][194](46)[172]256:XC[178]XN[171]7 60030 XE[178][194](47)[170][194](48)[172]256:XF[178][194](49)[170][194](50)[172]256 60040 XC[178]XC[170]7:[139] ([194](XC)[175]127)[179][177]88 [167] 60040 60050 [139] ([194](XC[170]1)[175]127)[179][177]66 [167] 60040 60053 [143] 60055 [143] LOOP TO DO VARIABLES 60057 [143] 60060 X1[178][194](XN):X2[178][194](XN[170]1) 60070 [139] (X1[175]127)[178]88 [167] XN[178]XN[170]7:[137]60100 60080 [141] 60310:[153] ": "; 60090 [141] 60430:XN[178]XN[170]7 60100 [139] XN[179]XE[167] 60060 60110 [153] 60113 [143] 60115 [143] START OF ARRAY LOOP 60117 [143] 60120 [139] XN[178][177]XF [167] 60145 60130 [153] "ARRAY:WAIT ";:X1[178][194](XN):X2[178][194](XN[170]1):[141] 60310:[141] 60150 60140 [153]:XN[178]XN[170]2:[137] 60120 60145 [153]:[153] "SYSEND OF DATAWAIT":[142] 60146 [143] 60148 [143] PRINT ONE ARRAY(NAME FIRST) 60149 [143] 60150 [153] "(";:XX[178]0:XY[178]0:XZ[178]0:XD[178][194](XN[170]4):XQ[178]XN[170]5 60160 [139]XD[177]2[167]XZ[178][194](XN[170]10)[170][194](XN[170]9)[172]256[171]1:XQ[178]XQ[170]2:[153]XZ;","; 60170 [139] XD[177]1[167]XY[178][194](XN[170]8)[170][194](XN[170]7)[172]256[171]1:XQ[178]XQ[170]2:[153]XY;","; 60180 XX[178][194](XN[170]6)[170][194](XN[170]5)[172]256[171]1:[153] XX; 60190 [153] ")":XN[178]XQ 60193 [143] 60195 [143] NESTED LOOP FOR ELEMENTS 60197 [143] 60200 [129] X3[178]0 [164] XX:[129] X4[178]0 [164] XY:[129] X5[178]0 [164] XZ 60210 [153] X$;"("; 60220 [139] XD[177]2 [167] [153] X5;","; 60230 [139] XD[177]1 [167] [153] X4;","; 60240 [153] X3;"):"; 60250 [141] 60430:[139] XT[178]1 [167] XN[178]XN[170]5:[137] 60280 60260 [139] XT[178]3 [167] XN[178]XN[170]3:[137] 60280 60270 XN[178]XN[170]2 60280 [130] X5:[130] X4:[130] X3 60290 [142] 60303 [143] 60305 [143] PRINT NAME 60307 [143] 60310 X$[178][199](X1[175]127)[170][199](X2[175]127) 60320 [139] X1[177]127 [167] 60350 60330 [139] X2[179]128 [167] XT[178]1:[137] 60360 60340 XT[178]3:X$[178]X$[170]"$":[137] 60360 60350 XT[178]2:X$[178]X$[170]"%":[137] 60360 60360 [153] X$;:[142] 60363 [143] 60365 [143] PRINT STRING 60367 [143] 60370 XL[178][194](XN[170]2):XA[178][194](XN[170]3)[170]([194](XN[170]4))[172]256:[153] [199](34); 60380 [139] XA[178]0 [167] 60400 60390 [129] XR[178]0 [164] XL[171]1:[153] [199]([194](XA[170]XR));:[130] XR 60400 [153][199](34):[142] 60403 [143] 60405 [143] PRINT INTEGER 60407 [143] 60410 X1[178][194](XN[170]2):X2[178][194](XN[170]3):[153]X2[170]X1[172]256:[142] 60413 [143] 60415 [143] PRINT REAL 60417 [143] 60420 [129] XR[178]2 [164] 6:[151] XC[170]XR,[194](XN[170]XR):[130] XR:[153] XB:[142] 60423 [143] 60425 [143] PRINT CONTENT 60427 [143] 60430 [139] XT[178]2 [167] 60460 60440 [139] XT[178]1 [167] 60470 60450 [141] 60370:[137] 60480 60460 [141] 60410:[137] 60480 60470 [141] 60420 60480 [142]